GRUBの導入準備
GRUBをインストールするにはGRUBの実行実体であるいくつかのブートローダファイルとそれをハードディスクやフロッピーディスクにインストールするGRUBプログラムが必要です。因みにブートローダファイルは以下の7つのファイルです。
stage1
stage2
fat_stage1_5
ffs_stage1_5
minix_stage1_5
reiserfs_stage1_5
e2fs_stage1_5
これらを用意する一番の理想的な方法はGRUBのソースを取得して、PC-UNX上でmakeすることです。ソースにはドキュメントなども同梱されており、またオンラインマニュアルもmakeされるので、今後長くGRUBを使っていくなら、マルチOSの中に一つはPC-UNIXを入れて、ここにGRUBを導入するといいと思います。今のところWindowsやDOS上でmakeするためのソースは用意されていません。
ただ、Web上にはmake済みのブートローダファイルも配布されています。ブートローダはOSに依存しないので、makeを行うプラットフォームは関係ありません。配布されたこのブートローダファイルを使って、どんなOSでもブート可能です。また起動するだけでGRUBプログラムが走るようになっているブートフロッピーのイメージも配布されているので、make環境を作成しないでも、GRUBの導入準備はできます。
ここでは双方の手続きについて説明します。
まずはPC-UNIX上でmakeする場合ですが、Linuxの場合で説明します。GRUBのページには、一応GCCとバージョン2.9.1.0.23以降のGNU binutilsが必要だと書いてあります。無いならば予めGetしてインストールしておく必要がありますが、最新のディストリビューションなら、大体同梱されています。TurboLinux 6.0、Red Hat 6.2などには既に同梱されていました。
ソースは、ftp://alpha.gnu.org/gnu/grub/から入手します。「grub-バージョン番号.tar.gz」という名称のアーカイブです。
これは極めて簡単です。最新のGRUBのソースアーカイブがtarボールで配布されていますから、まずtarボールの解凍からはじめます。解凍後は先頭ディレクトリに移って、「./configure」->「make」->「make install」と一般的なmake手順です。
|
以上でmakeは完了です。
これでGRUBプログラムはパスさえとおっていれば、「grub」と打つだけで実行できます。またブートローダファイルは、「/usr/local/share/grub/i386-pc」というディレクトリに格納されています。
makeが完了すると、オンラインマニュアルなども利用できる状態になります。ただmanよりはinfoの方が遥かに詳細な記述を見ることができます。「info grub」とタイプして下さい。私が説明していることの全てが記述されています。全部英語ですが。
ただし時折infoコマンドがうまく動かなかったり、思ったページが表示されなかったりすることがあるかもしれません。その場合はinfoの設定をみてほしいのですが、どうしてもだめな場合は、解凍したディレクトリ下の「docs」というディレクトリにgrub.infoで始まるテキストファイル群としてあるので、直接viででも眺めてください。
またこのディレクトリには設定ファイルmenu.lstのサンプルもあるので、参考にするといいと思います。
次にmake環境を作れない人、作りたくない人はブートフロッピーディスクを作成ます。
フロッピーディスクイメージは、ソースと同じftp://alpha.gnu.org/gnu/grub/から入手します。名称は「grub-バージョン番号-i386-pc.ext2fs」です。名称からも察しがつくように、このイメージでブートフロッピーを作成するとフロッピーはext2fsでフォーマットされたものになります。
Linuxなら、あまり説明する必要もないでしょうが、以下のようなコマンドで、このイメージをフロッピーディスクに書き込みます。
[ddコマンドによるイメージのフロッピーへの書き出し]
> dd if=grub-0.5.96-i386-pc.ext2fs of=/dev/fd0 |
Windows/DOS環境しかない人は、DOSのコマンド「rawrite.exe」を取得するのが一番いいのですが、入手方法があまりよくわからない人が多いでしょうから、若干面倒ですが、Windowsでも標準で用意されている「debug」コマンドを使った方法も紹介します。いずれもWindowsのDOS窓で実行できますが、NT/2000の「コマンドプロンプト」ではできません。Windows上で実行する場合でも、DOSコマンドなので、イメージファイルを短い名前、例えば「grub.img」などにしておいた方がいいでしょう。
rawriteの場合は、以下のようなコマンドを打つだけです。
[RAWRITEコマンドによるイメージのフロッピーへの書き出し]
C:\> rawrite grub.img a: |
debugコマンドの場合は、予めイメージファイルのブロック数を計算します。ファイルサイズのバイト数を「512」で割った商です。今回私が取得した「grub-0.5.96.1-i386-pc.ext2fs」は173,056bytesだったので、338ブロックになります。
ブロック数を算出したら、debugコマンドをイメージファイル名を引数にして実行します。内部コマンド「W」(書き込み命令)で以下のように指定します。ブロック数以外は必ず以下の数値を指定して下さい。パラメータの意味は内部コマンド「?」で確認して下さい。
[DEBUGコマンドによるイメージのフロッピーへの書き出し]
C:\>
debug
grub.img -W 100 0 0 338 -Q C:\> |
以上で、ブートフロッピーディスクの完成です。PC-UNIX環境のない人にとっては唯一のGRUBインストール環境になるので、大切に保管しましょう。(まあまた作りなおしてもいいのですが)
因みにこのブートフロッピーディスクは、単なるGRUBインストール用のフロッピーディスクではなく、GRUBのブートローダファイルも含んだ、ブートローダとして既に完結しているものです。このフロッピーをLinux上でマウントしてみると/boot/grubというディレクトリがあって、ブートローダファイルがそこに格納されています。また設定ファイルもここにあります。もしフロッピーブートでいいというのなら、これで既に導入まで完了したことになります。後は設定ファイルの編集をして、自分なりのブートメニューを作成するだけです。
しかし多くの人はブートローダは基本的にハードディスクに導入するでしょう。特にWindows/DOS環境しかない人にとっては、前述したように上記フロッピーディスクはext2fsでフォーマットされているため、そこの中にある設定ファイルを編集することができないため、カスタマイズができません。ハードディスクへの導入は事実上必須となるでしょう。
ブートローダファイルの用意ですが、前述のように、makeをした人は、所定の位置にブートローダファイルが作成されることは説明しました。またブートフロッピーディスクを作った人もLinuxからなら、その中のブートローダファイルを取り出すことができることも説明しました。それ以外の人は、やはりソースと同じ場所から「grub-バージョン番号-i386-pc.tar.gz」というファイル名のアーカイブをダウンロードして下さい。この中に格納されています。
最後にブートローダファイルの配置です。makeを行なった人が、インストールにgrub-installシェルスクリプトを使うなら、ブートローダの配置もこのシェルが自動的に行なってくれるので、特に自分で配置する必要はありません。
それ以外の場合は、基本的に特定の場所に配置する必要があります。どのパーティションに置くか決めるのです。もっともブートローダファイルの多くはインストール時にのみ必要なので、はっきり言って配置などどうでもいいのですが、stage2だけは今後GRUBの実行時にも参照されることになるので、ハードディスクにGRUBを導入する場合は、なるべく今後あまり変更することないであろうパーティションに配置した方が、導入のし直しをしなくて済みます。もっとも導入のやり直しなども大した作業ではないので、それほど神経質になる必要もありませんが、あまりやらないで済むに越したことはありません。
ブートローダファイルは以下のファイルシステム上に置くことができます。
FAT16
FAT32
ext2fs
ReiserFS
BSD
ffs
Minix
fs
パーティションを決めたら、そのパーティションに/boot/grub(FATなら\boot\grub)というディレクトリを作って、そこに全てのブートローダファイルを置いてください。ブートローダファイルを置くディレクトリは任意なのですが、/boot/grubはGRUBのデフォルト値なので、これにしておくとインストール時にあまり余計な指定をしないで済みます。特に不都合がない限り、このディレクトリにしましょう。
以上で、GRUB導入準備の完了です!!